package br.ucb.sigplan.crud;

import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

import br.ucb.sigplan.beans.Atividade;
import br.ucb.sigplan.beans.Conteudo;
import br.ucb.sigplan.beans.Cronograma;
import br.ucb.sigplan.dao.CronogramaDAO;
import br.ucb.sigplan.dao.impl.CronogramaDAOImpl;
import br.ucb.sigplan.exception.DAOException;

public class CronogramaCrud {
	private static CronogramaDAO cronogramaDAO;
	
	private CronogramaCrud() {
		
	}
	
	public static CronogramaDAO getCronogramaDAO() {
		if (cronogramaDAO == null) {
			cronogramaDAO = new CronogramaDAOImpl();
		}
		return cronogramaDAO;
	}
	
	public static void insert(Atividade atividade, Conteudo conteudo, Integer idplano) throws DAOException{
		getCronogramaDAO().insert(atividade, conteudo, idplano);
	}
	
	public static Cronograma searchByPlano(Integer idplano){
		return getCronogramaDAO().searchByPlano(idplano);
	}
	
	public static void insertAll(Map<Atividade, List<Conteudo>> cronograma, Integer idPlano) throws DAOException{
		for (Entry<Atividade, List<Conteudo>> cronogramaVar : cronograma.entrySet()) {
			insertAllContents(cronogramaVar.getValue(), cronogramaVar.getKey(), idPlano);
		}
	}
	
	public static void insertAllContents(List<Conteudo> conteudos, Atividade atividade, Integer idPlano) throws DAOException{
		for (Conteudo conteudo : conteudos) {
			insert(atividade, conteudo, idPlano);
		}
	}
	
	public static void delete(Atividade atividade, Conteudo conteudo, Integer idplano) throws DAOException{
		getCronogramaDAO().delete(atividade, conteudo, idplano);
	}
}
